# -*- coding: utf-8 -*-
from zinx.ziface.irequest import IRequest
from zinx.ziface.irouter import IRouter


class BaseRouter(IRouter):
    """
    实现router时，先嵌入这个基类，然后根据需要对这个基类的方法进行重写
    这里之所以BaseRouter的方法都为空，是因为有的Router不希望有PreHandle或PostHandle
    所以Router全部继承BaseRouter的好处是，不需要实现PreHandle和PostHandle也可以实例化
    """
    def __init__(self):
        pass

    def PreHandle(self, request: IRequest):
        """
        在处理conn业务之前的钩子方法
        :param request:
        :return:
        """
        pass

    def Handle(self, request: IRequest):
        """
        处理conn业务的方法
        :param request:
        :return:
        """
        pass

    def PostHandle(self, request: IRequest):
        """
        处理conn业务之后的钩子方法
        :param request:
        :return:
        """
        pass
